package cn.wolfcode.car.business.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Getter;
import lombok.Setter;
import org.springframework.format.annotation.DateTimeFormat;

import java.util.Date;

@Getter
@Setter
public class Appointment {

    //设置所有状态的可能性，设置初始值
    private static final long serialVersionUID = 1L;
    public static final Integer STATUS_APPOINTMENT = 0;//预约中
    public static final Integer STATUS_ARRIVAL = 1;//已到店
    public static final Integer STATUS_CANCEL = 2;//用户取消
    public static final Integer STATUS_OVERTIME = 3;//超时取消
    public static final Integer STATUS_SETTLE  = 4;//结算单生成

    //软删除的状态可能性
    public static final Integer remove_off  = 0;//已删除
    public static final Integer remove_on  = 1;//未删除


    /** */
    private Long id;

    /** 客户姓名*/
    private String customerName;

    /** 客户联系方式*/
    private String customerPhone;

    /** 预约时间*/
    //需要设置，添加时间的时候，要设置用户传入的时间日期格式
    //响应的也需要设置日期格式，否则显示在浏览器不是我们想要的格式
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
    private Date appointmentTime;

    /** 实际到店时间*/
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
    private Date actualArrivalTime;

    /** 车牌号码*/
    private String licensePlate;

    /** 汽车类型*/
    private String carSeries;

    /** 服务类型【维修0/保养1】*/
    private Integer serviceType;

    /** 创建时间*/
    private Date createTime;

    /** 备注信息*/
    private String info;

    /** 状态【预约中0/已到店1/用户取消2/超时取消3】*/
    private Integer status = STATUS_APPOINTMENT;    //状态【预约中0/已到店1/用户取消2/超时取消3】

    //在新增的时候，需要设置为未删除的状态，否则页面可能不显示
    //两种方法：一，在程序中，设置新增的删除状态为未删除，二，在数据库中设置默认值
    private Integer removeStatus = remove_on;       //未删除的状态

}